Fixes many csv leaks + tpo.
authorrobertlipe <robertlipe@gmail.com>
Wed, 1 Jan 2014 00:23:23 +0000 (00:23 +0000)
committerrobertlipe <robertlipe@gmail.com>
Wed, 1 Jan 2014 00:23:23 +0000 (00:23 +0000)
gpsbabel/csv_util.cc
gpsbabel/tpo.cc

index 52a47088517410d667559b2acccbe18657a9d530..c21f7c5bdc10c55d96f78e67ff2f3e5933537cee 100644 (file)
@@ -1033,13 +1033,13 @@ xcsv_parse_val(const char* s, waypoint* wpt, const field_map_t* fmp,
     /* IGNORE -- Calculated Sequence # For Ouput*/
     break;
   case XT_SHORTNAME:
-    wpt->shortname = csv_stringtrim(s, enclosure, 0);
+    wpt->shortname = csv_stringtrim(s, enclosure);
     break;
   case XT_DESCRIPTION:
-    wpt->description = csv_stringtrim(s, enclosure, 0);
+    wpt->description = csv_stringtrim(s, enclosure);
     break;
   case XT_NOTES:
-    wpt->notes = csv_stringtrim(s, "", 0);
+    wpt->notes = csv_stringtrim(s, "");
     break;
   case XT_URL:
     if (!link_) {
@@ -1270,9 +1270,9 @@ xcsv_parse_val(const char* s, waypoint* wpt, const field_map_t* fmp,
     break;
   case XT_GEOCACHE_ISAVAILABLE:
     gc_data = waypt_alloc_gc_data(wpt);
-    if (case_ignore_strcmp(csv_stringtrim(s, "", 0), "False") == 0) {
+    if (case_ignore_strcmp(csv_stringtrim(s, ""), "False") == 0) {
       gc_data->is_available = status_false;
-    } else if (case_ignore_strcmp(csv_stringtrim(s, "", 0), "True") == 0) {
+    } else if (case_ignore_strcmp(csv_stringtrim(s, ""), "True") == 0) {
       gc_data->is_available = status_true;
     } else {
       gc_data->is_available = status_unknown;
@@ -1280,9 +1280,9 @@ xcsv_parse_val(const char* s, waypoint* wpt, const field_map_t* fmp,
     break;
   case XT_GEOCACHE_ISARCHIVED:
     gc_data = waypt_alloc_gc_data(wpt);
-    if (case_ignore_strcmp(csv_stringtrim(s, "", 0), "False") == 0) {
+    if (case_ignore_strcmp(csv_stringtrim(s, ""), "False") == 0) {
       gc_data->is_archived = status_false;
-    } else if (case_ignore_strcmp(csv_stringtrim(s, "", 0), "True") == 0) {
+    } else if (case_ignore_strcmp(csv_stringtrim(s, ""), "True") == 0) {
       gc_data->is_archived = status_true;
     } else {
       gc_data->is_archived = status_unknown;
@@ -1319,7 +1319,7 @@ xcsv_parse_val(const char* s, waypoint* wpt, const field_map_t* fmp,
     /* Tracks and routes *********************************************/
   case XT_ROUTE_NAME:
     if (csv_route) {
-      csv_route->rte_name = csv_stringtrim(s, enclosure, 0);
+      csv_route->rte_name = csv_stringtrim(s, enclosure);
     }
     break;
   case XT_TRACK_NEW:
@@ -1334,7 +1334,7 @@ xcsv_parse_val(const char* s, waypoint* wpt, const field_map_t* fmp,
     if (!csv_track) {
       csv_track = route_head_alloc();
     }
-    csv_track->rte_name = csv_stringtrim(s, enclosure, 0);
+    csv_track->rte_name = csv_stringtrim(s, enclosure);
     break;
 
     /* OTHER STUFF ***************************************************/
index 87bf6ecd7cc1e30da3e74034226a31904ba112f2..36ef3657a3c8d8a906baa82a443a500a8663c524 100644 (file)
@@ -975,7 +975,6 @@ void tpo_process_map_notes(void)
     int lat;
     int lon;
     unsigned int name_length;
-    char* waypoint_name;
     waypoint* waypoint_temp;
     unsigned int num_bytes;
     unsigned int jj;
@@ -991,9 +990,7 @@ void tpo_process_map_notes(void)
     waypoint_temp = tpo_convert_ll(lat, lon);
 
     // Assign a generic waypoint name
-    xasprintf(&waypoint_name, "NOTE %d", ii+1);
-//printf("Waypoint Name: %s\t\t", waypoint_name);
-    waypoint_temp->shortname = waypoint_name;
+    waypoint_temp->shortname = QString().sprintf("NOTE %d", ii+1);
 
 //UNKNOWN DATA LENGTH
     (void)tpo_read_int();
@@ -1015,6 +1012,7 @@ void tpo_process_map_notes(void)
       gbfread(comment, 1, name_length, tpo_file_in);
       comment[name_length] = '\0';  // Terminator
       waypoint_temp->description = comment;
+      xfree(comment);
 //printf("Comment: %s\n", comment);
     } else {
 //            waypoint_temp->description = NULL;